package br.unicamp.ic.inf300.arena.modelo.logistico;
/**
 * Venda de Bilhetes Eletronicos para Espetaculos (Arena Entretenimento S.A.)
 * UnidadeNegocio.java
 */
import java.util.Collection;

import br.unicamp.ic.inf300.arena.modelo.financeiro.ContaContabil;

public class UnidadeNegocio {
	private int codUnidade;
	private String cnpj;
	private String endereco;
	private String telefone;
	private Collection<Sala> salas;
	private ContaContabil contaContabil;

	public UnidadeNegocio() {
		super();
	}

	/**
	 * 
	 * @param cnpj
	 * @param endereco
	 * @param telefone
	 * @param salas
	 * @param contaContabil
	 */
	public UnidadeNegocio(String cnpj, String endereco, String telefone, Collection<Sala> salas, ContaContabil contaContabil) {
		super();
		this.cnpj = cnpj;
		this.endereco = endereco;
		this.telefone = telefone;
		this.salas = salas;
		this.contaContabil = contaContabil;
	}

	public String getCnpj() {
		return cnpj;
	}

	public void setCnpj(String cnpj) {
		this.cnpj = cnpj;
	}

	public ContaContabil getContaContabil() {
		return contaContabil;
	}

	public void setContaContabil(ContaContabil contaContabil) {
		this.contaContabil = contaContabil;
	}

	public String getEndereco() {
		return endereco;
	}

	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	public Collection<Sala> getSalas() {
		return salas;
	}

	public void setSalas(Collection<Sala> salas) {
		this.salas = salas;
	}

	public String getTelefone() {
		return telefone;
	}

	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}

	public int getCodUnidade() {
		return codUnidade;
	}

	public void setCodUnidade(int codUnidade) {
		this.codUnidade = codUnidade;
	}

	/**
	 * @return <code>String</code>
	 * JUtils plugin ;-)
	 */
	public String toString()
	{
	    final String TAB = "    ";
	    
	    StringBuffer retValue = new StringBuffer();
	    
	    retValue.append("UnidadeNegocio ( ")
	        .append(super.toString()).append(TAB)
	        .append("cnpj = ").append(this.cnpj).append(TAB)
	        .append("codUnidade = ").append(this.codUnidade).append(TAB)
	        .append("contaContabil = ").append(this.contaContabil).append(TAB)
	        .append("endereco = ").append(this.endereco).append(TAB)
	        .append("salas = ").append(this.salas).append(TAB)
	        .append("telefone = ").append(this.telefone).append(TAB)
	        .append(" )");
	    
	    return retValue.toString();
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((cnpj == null) ? 0 : cnpj.hashCode());
		result = prime * result + codUnidade;
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		final UnidadeNegocio other = (UnidadeNegocio) obj;
		if (cnpj == null) {
			if (other.cnpj != null)
				return false;
		} else if (!cnpj.equals(other.cnpj))
			return false;
		if (codUnidade != other.codUnidade)
			return false;
		return true;
	}

}